Image processing for automatic pattern recognition is currently one of the most demanding and excellent research fields. The potential applications are virtually unlimited.
Simple precursors of pattern recognition are the widely used laser scanner for detection of one-dimensional barcodes. However, digital image processing goes well beyond this since it can be used not only to identify one-dimensional barcodes, but also two-dimensional codes or complex images, in particular and in addition the structure which is unknown from the start as far as identification of how this is also made possible by the eye in conjunction with the brain.
One possible application, for example, is the identification of a code which is applied at an undefined point to a motor vehicle in the production line, in order to allow the production process to be comprehensively controlled and monitored. Since the codes are relatively small in comparison to the cars, and can be applied at different points, this application is extremely demanding with respect to the required quality and resolution. However, the different illumination in a production line also results in considerable difficulties for image identification. This is associated with ever more stringent demands for the processing speed.
Image processing systems are typically based on a digital two-dimensional image which is produced, for example, by a CCD camera. The two-dimensional images which are produced by the camera and can be processed further digitally are then passed to the pattern recognition. However, other imaging systems, for example X-ray CT scans, MRI scans or scanners can also be used, to name but one possible choice.
The actual identification of an image, that is to say the identification of structures of which the image is perceived to be composed, is a complex process. One fundamental idea in this case is that an image can be broken down into graphical basic structures which, in their totality, represent the image. These basic structures are in the simplest case straight lines or curved lines, although they may also be of a more complex nature. Basic structures such as these are also referred to as graphical primitives.
In this context, the identification process can be split into at least two phases. Firstly, pixels which can in principle be associated with a basic structure are found, and secondly pixels which have been found and belong to the same basic structure are combined in order to actually determine the shape, position, size etc of this basic structure.
More specifically, the image information is typically in the form of a brightness distribution and, possibly, a color distribution in the image, as well. For the sake of simplicity, the following text refers only to monochrome processing, but it is obvious that the processing can also be carried out in a corresponding manner for different color components of the image. First of all, the two-dimensional digital image is assumed, that is to say a discrete matrix of pixels, which is produced by the camera. In the matrix, each pixel contains at least one brightness value. Furthermore, it is assumed that the image information can be broken down into simple objects which are bounded by lines or edges which are defined by a particularly high brightness gradient, frequently also referred to as a discontinuity.
In order to determine these lines or edges, it is therefore first of all necessary to determine those pixels which are located at a point with a particularly high brightness gradient. This is done, for example, by scanning the brightness value in the image information along a predetermined direction, in order to track the discontinuity.
The discontinuity points which have been found in this way are then associated with one specific edge. The basic structures determined in this way finally represent the sought discontinuity edges, which represent a schematic form of the image content. This procedure is referred to as edge detection.
One possible way to approach this problem is to scan the brightness or to determine the brightness function along one direction. The function is then differentiated and subjected to a threshold value analysis. If the threshold value is exceeded at a point, then it is assumed that an edge is present at this point.
One such method is known from U.S. Pat. No. 4,910,786 (Eichel), which detects intensity edge paths as follows.
The gradient magnitude and direction of the image are determined in a lattice composed of node points by means of Gaussian network operators. The decision as to whether a node point is associated with an edge path is made on the basis of the gradient magnitude.
Evaluation of the gradient magnitude just by a threshold value comparison is disadvantageous in particular because the edge location is heavily influenced by noise and the local illumination level. The contact points that are found must be postprocessed in a complex form, and the processes which are required for this purpose considerably restrict the scope for a real-time capability.
Furthermore, in this method, the resolution is restricted by the image matrix, so that the resolution is inadequate for many fields of application. On the other hand, major refinements of the image matrix in order to increase the resolution cannot be carried out indefinitely, either, since the processing time would otherwise explode.
The described method is therefore disadvantageous and, in particular, is barely suitable for use in the demanding exemplary embodiment described above in the field of motor vehicle production. However, many other applications, such as precise edge measurements, can also be carried out only to a restricted extent in this way.
In addition, newer methods are known in which the resolution of the camera image is increased by pixel interpolation. However, these methods are generally software based and are therefore generally too slow in order to carry out processing in video real time with appropriately high resolution. Furthermore, subsystems such as these are unreasonably complex. In addition, the processes that are used cannot be transferred directly to hardware solutions.